package com.taoyuanx.boot.business;

import java.util.Map;

import com.taoyuanx.boot.eum.TokenType;


public interface TokenBusiness {
	public static final String COMMON_TOKEN="token";//普通token 有时限
	public static final String REFRESH_TOKEN="refresh_token"; //更新token 有时限建议比COMMON_TOKEN捎大，只能使用一次
	
	public static enum keyWordDesc{
		TYPE, //token类型 tokenType
		LIMIT,//使用次数 integer
		OPENKEY,//openKey string
		ENDTIME;//结束时间 long
	}
	/**
	 * @param openKey 开放key
	 * @param businessDesc 业务描述
	 * @return token
	 */
	String buildToken(String openKey,String  businessDesc,TokenType type);
	/**
	 * @param token 验证token
	 * @return tokenResult 或token中携带的关键业务信息
	 */
	Object vafyToken(String token);
	
	/**
	 * @param refreshToken 更新token
	 * @return token tokenResult 或已经刷新的token和refreshtoken
	 */
	Object refreshToken(String refreshToken);
	
	
	/**
	 * @param keyWorkdDesc 业务相关字符
	 * @return 业务关键信息
	 */
	Map<keyWordDesc,Object> getKeyWordDesc(Object keyWordDesc);
}
